package com.palfund.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;

public class StartService extends Service {

    public StartService() {
        Log.i("StartService", "---StartService()--->" + Thread.currentThread().getName());
    }

    // 创建,只能执行一次.
    @Override
    public void onCreate() {
        super.onCreate();
        Log.i("StartService", "---onCreate()--->" + Thread.currentThread().getName());
    }

    // 可以执行多次.每调用一次startService()方法,该方法都会执行一次,通常在该方法里进行任务的实现.任务执行完调用stopSelf()结束service
    // START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象.随后系统会尝试重新创建service,
    // 由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法.如果在此期间没有任何启动命令被传递到service,
    // 那么参数Intent将为null。
    // START_NOT_STICKY:非粘性的,使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
    // START_REDELIVER_INTENT:重传Intent.使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,
    // 并将Intent的值传入。
    // START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        int index = intent.getIntExtra("index", -1);
        Log.i("StartService", "---onStartCommand()--->" + index + Thread.currentThread().getName());
        // 停止service
        //stopSelf();
        return START_REDELIVER_INTENT;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.i("StartService", "---onDestroy()--->" + Thread.currentThread().getName());
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        Log.i("StartService", "---onBind()--->" + Thread.currentThread().getName());
        return null;
    }


}
